package com.briup.es.mapper;

import com.briup.es.domain.bean.Book;
import com.briup.es.domain.vo.BookDetailVO;
import com.briup.es.domain.vo.BookVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;


public interface BookMapper {
    /**
     * 查询图书表中所有上架的图书
     *
     * @return 所有的图书信息
     */
    List<Book> queryAll();

    List<BookVO> findByCategory(Integer id);

    List<BookVO> searchBook(String query);

    BookDetailVO queryByIdAndUserId(@Param("bookId") Integer bookId,
                                    @Param("userId") Integer userId);

    /**
     * 查询指定id图书的数量
     *
     * @param id 图书id
     * @return 图书数量
     */
    int queryById(Integer id);

    /**
     * 根据指定的图书id修改其图书的库存
     *
     * @param bookId    图书id
     * @param changeNum 图书库存的变化量
     */
    void updateStoreNum(@Param("bookId") Integer bookId, @Param("changeNum") Integer changeNum);

    // 根据图书id，查询图书信息，主要为图书的id和图书库存
    Book queryBookById(Integer bookId);
}




